package com.yxinsur.imc.business.form;

import com.yxinsur.imc.common.annotation.Excel;
import lombok.Data;
import lombok.ToString;
import lombok.experimental.Accessors;
import org.codehaus.jackson.annotate.JsonIgnore;

import java.util.List;

/**
 * 协议-费用科目对应口径 VO
 *
 * @author imc
 * @date 2021-07-28
 */
@Data
@ToString
@Accessors(chain = true)
public class ContractExpenseForm {
    private static final long serialVersionUID = 1L;
    /**
     * 主键Id
     */
    private Long id;

    /**
     * 协议费用科目的id imc_contract_expense的id
     */
    @Excel(name = "协议费用科目的id imc_contract_expense的id")
    private Long contractExpenseId;

    /**
     * 协议费用科目名称
     */
    @Excel(name = "协议费用科目名称")
    private String expenseName;

    /**
     * 表达式序号
     */
    @Excel(name = "表达式序号")
    private Long order;

    /**
     * 口径字段名称
     */
    @Excel(name = "口径字段名称")
    private String variableName;

    /**
     * 协议主键
     */
    @JsonIgnore
    @Excel(name = "协议主键")
    private Long contractId;

    /**
     * 供应商费用科目的主键
     */
    @Excel(name = "供应商费用科目的主键")
    private Long supplierExpenseId;

    /**
     * 运算符
     */
    @Excel(name = "运算符")
    private String operator;

    /**
     * 逻辑运算符
     */
    @Excel(name = "逻辑运算符")
    private String logicalOperator;

    /**
     * 处理策略代码
     */
    @Excel(name = "处理策略代码")
    private String strategyCode;

    /**
     * 变量值
     */
    @Excel(name = "变量值")
    private String variableValue;

    /**
     * 协议费用科目对应口径集合
     */
    private List<ContractExpenseExpressionForm> contractExpenseExpressionFormList;
    /**
     * 协议费用科目id集合
     */
    private List<Long> contractExpenseIdList;

    @Excel(name = "费用计算规则[默认Null和空为fee=prem*fee_rate]保费乘以费用科目对应的费率")
    private String feeCalcRule;
}
